package fachada;


import java.sql.SQLException;
import java.util.Collection;

import cliente.CadastroCliente;
import cliente.Cliente;
import cliente.exception.ExceptionCPFInvalido;
import cliente.exception.ExceptionCampoVazio;
import cliente.exception.ExceptionPessoaJaCadastrada;
import cliente.exception.PessoaNaoEncontradaException;
import endereco.Endereco;

public class FachadaCliente {
	CadastroCliente cc = new CadastroCliente();
	public void inserirCliente(String vNomeCliente, String vIdentidade, String vCPF, String vEndereco, String vNumero, String vBairro, String vCidade, String vEstado, String vCEP, String vTelefone, String vEmail) throws ExceptionCampoVazio, ClassNotFoundException, SQLException, ExceptionCPFInvalido, ExceptionPessoaJaCadastrada{
		Cliente c = new Cliente();
		
		c.setNomeCliente(vNomeCliente);
		c.setIdentidade(vIdentidade);
		c.setCpf(vCPF);
		c.setTelefone(vTelefone);
		c.setEmail(vEmail);
		Endereco ender = new Endereco();
		
		ender.setBairro(vBairro);
		ender.setCep(vCEP);
		ender.setCidade(vCidade);
		ender.setEstado(vEstado);
		ender.setLogradouro(vEndereco);
		ender.setNumero(vNumero);
		c.setEndereco(ender);

		cc.inserirCliente(c);
	}
	
	public Cliente PesquisarCliente(String cpf)throws PessoaNaoEncontradaException, ClassNotFoundException, SQLException, ExceptionCPFInvalido{
		if(cpf.trim().length() < 11){
			throw new ExceptionCPFInvalido();
		}
		String cpfcomp="";
		String A,B,C,D,E,F,G,H,I,D1,D2,P1,P2,T1;
		
			A = cpf.substring(0,1);
	        B = cpf.substring(1,2);
	        C = cpf.substring(2,3);
	        P1 = ".";
	        D = cpf.substring(3,4);
	        E = cpf.substring(4,5);
	        F = cpf.substring(5,6);
	        P2 = ".";
	        G = cpf.substring(6,7);
	        H = cpf.substring(7,8);
	        I = cpf.substring(8,9);
	        T1 = "-";
	        D1 = cpf.substring(9,10);
	        D2 = cpf.substring(10,11);
         cpfcomp = A+B+C+P1+D+E+F+P2+G+H+I+T1+D1+D2;
		
		System.out.println(cpfcomp);	
		return cc.PesquisarCliente(cpfcomp);
	}
	
	public void ExcluirCliente(String nomefac, String cpf) throws PessoaNaoEncontradaException, ClassNotFoundException, SQLException{
		String cpfcomp="";
		 String A,B,C,D,E,F,G,H,I,D1,D2,P1,P2,T1;
     	A = cpf.substring(0,1);
        B = cpf.substring(1,2);
        C = cpf.substring(2,3);
        P1 = ".";
        D = cpf.substring(4,5);
        E = cpf.substring(5,6);
        F = cpf.substring(6,7);
        P2 = ".";
        G = cpf.substring(8,9);
        H = cpf.substring(9,10);
        I = cpf.substring(10,11);
        T1 = "-";
        D1 = cpf.substring(12,13);
        D2 = cpf.substring(13,14);
        
        cpfcomp = A+B+C+P1+D+E+F+P2+G+H+I+T1+D1+D2;
		cc.ExcluirCliente(nomefac, cpfcomp);
	}
	
	public void AlterarCliente(String vcodigo, String vNomeCliente, String vIdentidade, String vCPF, String vEndereco, String vNumero, String vBairro, String vCidade, String vEstado, String vCEP, String vTelefone, String vEmail, String vcodigoendereco) throws ClassNotFoundException, SQLException, ExceptionCampoVazio{
		Cliente cli = new Cliente();
		
		cli.setNomeCliente(vNomeCliente);
		cli.setIdentidade(vIdentidade);
		cli.setCpf(vCPF);
		cli.setTelefone(vTelefone);
		cli.setEmail(vEmail);
		int codigo = Integer.parseInt(vcodigo);
		cli.setCodigoCliente(codigo);
		Endereco ender = new Endereco();
		
		codigo = Integer.parseInt(vcodigoendereco);
		ender.setCodigoEndereco(codigo);
		ender.setBairro(vBairro);
		ender.setCep(vCEP);
		ender.setCidade(vCidade);
		ender.setEstado(vEstado);
		ender.setLogradouro(vEndereco);
		ender.setNumero(vNumero);
		cli.setEndereco(ender);

		cc.AlterarCliente(cli);
	}
	
	public Collection<Cliente> Pesqtudo() throws ClassNotFoundException, SQLException{
		return cc.Pesqtudo();
	}
	
	public Collection<Cliente> pesqclitodos(String cpf) throws SQLException, ClassNotFoundException{
		return cc.pesqtudocli(cpf);
	}
	
	public String pegarcod() throws ClassNotFoundException, SQLException{
		return cc.pegarcod();
	}
	
	public Cliente pesqnome(String nome) throws ClassNotFoundException, SQLException{
		return cc.pesqnome(nome);
	}
	
	public Cliente pesqcpfponto(String cpf) throws PessoaNaoEncontradaException, ClassNotFoundException, SQLException{
	 System.out.println(cpf);
		return cc.PesquisarCliente(cpf);
	}
}
